package com.ruicar.afs.cloud.afscase.risk.service;

import com.ruicar.afs.cloud.afscase.approveprev.entity.CaseApprovePrevInfo;
import com.ruicar.afs.cloud.basic.outer.api.common.dto.RepaymentPlanDTO;
import com.ruicar.afs.cloud.risk.api.dto.business.*;
import com.ruicar.afs.cloud.risk.api.dto.tortoise.request.TortoiseApplyData;
import com.ruicar.afs.cloud.risk.api.dto.tortoise.request.TortoisePrevApproveData;

import java.util.List;

/**
 * @Description 公共参数查询
 * @Author Peng Jinbo
 * @Date 2020/08/03 17:55
 */
public interface DataQueryService {

    /**
     * Author Peng Jinbo
     * Query main apply main info
     *
     *
     * @param applyNo apply no
     * @return the apply main info
     */
    ApplyMainInfo queryMain(String applyNo);

    /**
     * Author Peng Jinbo
     * Query cost apply cost info
     *
     * @param applyNo apply no
     * @return the apply cost info
     */
    ApplyCostInfo queryCost(String applyNo);

    /**
     * Author Peng Jinbo
     * Query contract apply contract info
     *
     * @param applyNo apply no
     * @return the apply contract info
     */
    ApplyContractInfo queryContract(String applyNo);

    /**
     * Author Peng Jinbo
     * Query cars list
     *
     * @param applyNo apply no
     * @return the list
     */
    List<ApplyCarInfo> queryCars(String applyNo);

    /**
     * Author Peng Jinbo
     * Query affiliated apply affiliated info
     *
     * @param applyNo apply no
     * @return the apply affiliated info
     */
    ApplyAffiliatedInfo queryAffiliated(String applyNo);

    /**
     * Author Peng Jinbo
     * Query contacts list
     *
     * @param applyNo apply no
     * @return the list
     */
    List<ApplyContactInfo> queryContacts(String applyNo);

    /**
     * Author Peng Jinbo
     * Query dealer apply dealer info
     *
     * @param applyNo apply no
     * @return the apply dealer info
     */
    ApplyDealerInfo queryDealer(String applyNo);

    /**
     * Author Peng Jinbo
     * Query duties list
     *
     * @param applyNo apply no
     * @return the list
     */
    List<ApplyDutyPersonInfo> queryDuties(String applyNo);

    /**
     * Author Peng Jinbo
     * Query customer apply duty person info
     *
     * @param applyNo apply no
     * @return the apply duty person info
     */
    ApplyDutyPersonInfo queryCustomer(String applyNo);

    /**
     * Author Peng Jinbo
     * Query prev tortoise prev approve data
     *
     * @param prevInfo prev info
     * @return the tortoise prev approve data
     */
    TortoisePrevApproveData queryPrev(CaseApprovePrevInfo prevInfo);


    TortoiseApplyData getApplyData(String applyNo);

}
